Mobile 3D Graphics: with OpenGL ES and M3G

Mobile 3D Graphics: with OpenGL ES and M3G

作者: Kari Pulli Tomi Aarnio Ville Miettinen Kimmo Roimela Jani Vaarala
出版社: Morgan Kaufmann
出版在: 2007-11-19
ISBN-13: 9780123737274
ISBN-10: 0123737273
裝訂格式: Hardcover
總頁數: 464 頁





內容描述


Description

Graphics and game developers must learn to program for mobility. This book
will teach you how. "This book - written by some of the key technical
experts...provides a comprehensive but practical and easily understood
introduction for any software engineer seeking to delight the consumer with
rich 3D interactive experiences on their phone. Like the OpenGL ES and M3G
standards it covers, this book is destined to become an enduring standard for
many years to come." - Lincoln Wallen, CTO, Electronic Arts,
Mobile“This book is an escalator, which takes the field to new levels.
This is especially true because the text ensures that the topic is easily
accessible to everyone with some background in computer science...The
foundations of this book are clear, and the authors are extremely
knowledgeable about the subject.” - Tomas Akenine-Möller, bestselling
author and Professor of Computer Science at Lund University "This book
is an excellent introduction to M3G. The authors are all experienced M3G users
and developers, and they do a great job of conveying that experience, as well
as plenty of practical advice that has been proven in the field." - Sean
Ellis, Consultant Graphics Engineer, ARM LtdThe exploding popularity
of mobile computing is undeniable. From cell phones to portable gaming
systems, the global demand for multifunctional mobile devices is driving
amazing hardware and software developments. 3D graphics are becoming an
integral part of these ubiquitous devices, and as a result, Mobile 3D Graphics
is arguably the most rapidly advancing area of the computer graphics
discipline. Mobile 3D Graphics is about writing real-time 3D graphics
applications for mobile devices. The programming interfaces explained and
demonstrated in this must-have reference enable dynamic 3D media on cell
phones, GPS systems, portable gaming consoles and media players. The
text begins by providing thorough coverage of background essentials, then
presents detailed hands-on examples, including extensive working code in both
of the dominant mobile APIs, OpenGL ES and M3G. C/C++ and Java
Developers, graphic artists, students, and enthusiasts would do well to have a
programmable mobile phone on hand to try out the techniques described in this
book. The authors, industry experts who helped to develop the OpenGL
ES and M3G standards, distill their years of accumulated knowledge within
these pages, offering their insights into everything from sound mobile design
principles and constraints, to efficient rendering, mixing 2D and 3D,
lighting, texture mapping, skinning and morphing. Along the way,
readers will benefit from the hundreds of included tips, tricks and
caveats.
 
Table of Contents

Chapter 1 Introduction
1.1 Mobile phones as graphics platforms

Power consumption, size, price
Form factors, UI constraints
Display resolution, size
CPU, memory, bus bandwidth
Graphics hardware, FPU
Many operating systems
Most phones have no OS1.2 History of Mobile 3D

J-Phone, Nokia 3410, etc.
Current market status1.3 Two APIs for two environments

The low-level rendering pipeline in brief
OpenGL ES
Java constraints in brief (details in Section III)
M3G1.4 Design principles

Expand on CG&A paper
Things common to GL ES and M3G
API specific issues in Sections II and III
Chapter 2 OpenGL ES
2.1 Design principles2.2 OpenGL ES API overview

Overview of the OpenGL graphics pipeline
What's in/out
What was added
What's new in 1.1?
What's new in 2.0? (briefly, we won't cover 2.0 programming here)
Optional extensions
Vendor specific extensions2.3 Windowing / Utility API
overview

EGL API overview
EGLUT API overview
Porting from desktop GL
Hello OpenGL ES example2.4 OpenGL ES API walk-through

Controlling state
o Descriptiono Design principleso Examples on usingo
Implementation insights
Matrix operations, controlling the camera, Viewport
Vertex Input & Batching, geometry
Lighting
Texture mapping: basics, multi-texturing, bump maps
Tests: depth, alpha, stencil, scissor
Fog, Blending
Point Sprites
Skinning2.5 Implementation insights

Pixel pipeline implementation
Accuracy
OS interaction
Buffer swapping
What's costly, what's not
Typical fast paths2.6 How to write efficient code

Software implementations
Hardware implementations
Batching geometry (VBOs, their use etc.)
Handling state
Rendering order
Tips, tricks, caveats
Mixing 2D and 3D2.7 How to write compatible code

Variance in implementations
Memory management issues (Symbian as an example)
Extensions
Using different API versions (single app, static vs. dynamic
linkage)
CPU versions2.8 Case studies
Chapter 3 M3G
3.1 Special constraints in Java

Performance problems in-depth
GC, JIT, bounds checking, type checking
Bad bytecode instruction set, no CPU access
Slow Java-native traffic, native call overhead
Exception handling, problems with callbacks
If no OS underneath: no processes, no dynamic memory allocation
Expand on material from our SIGGRAPH course3.2 Design
principles

Expand on material from our SIGGRAPH course3.3 API
overview

Graphics3D, World, Loader
Mesh, Sprite3D, Appearance
SkinnedMesh, MorphingMesh
Keyframe animation
Alignment, picking
Expand on SIGGRAPH material
What's new in 1.1?3.4 M3G API walk-through

Feature A
o Descriptiono Design principleso Examples on usingo
Implementation insights
Feature B
Features including:
Scene graph management
Culling, state sorting, etc.
Skinning, morphing
Transformation hierarchies
Backgrounds and Sprites vs. Textures3.5 How to write
efficient code

Tips, tricks and caveats
What's costly, what's not
Concentrate on things specific to M3G
Particle systems
Terrain rendering
Dynamic meshes in general
Visibility optimization (BSP, PVS, Octrees)
Mixing 2D and 3D
Pivot transformations
Alignment tricks
Memory management
Hardware based implementations3.6 Case studies
Chapter 4 Conclusion
4.1 Future Development

Hardware evolution
o Display resolutions, brightness, color gamuto New display
types (external, projected, flexible, stereo, head-mounted)o
Graphics HW becomes programmable, but fillrate remains lowo Software
implementations continue to live in the low end

Java evolution
o Ahead-of-time compilationo CPU support for bounds checking,
exceptions, etc.

API evolution
o OpenGL ES 2.0o JSR-239[?]o M3G 2.0
Appendix
A. Required math
GlossaryIndex




相關書籍

遊戲設計的有趣理論, 2/e (Koster: Theory of Fun for Game Design, 2/e)

作者 Raph Koster 褚曉穎 譯

2007-11-19

Creating Games with Unity and Maya: How to Develop Fun and Marketable 3D Games (Paperback)

作者 Adam Watkins

2007-11-19

Blender For Dummies, 4th Edition

作者 Jason van Gumster

2007-11-19